09 Adequando valores aos tipos

Próxima Atividade
  • Sugerir melhoria
Play
Current Time 0:00
/
Duration Time 0:00
Remaining Time -0:00
Stream TypeLIVE
Loaded: 0%
Progress: 0%
0:00
Fullscreen
00:00
Mute
Playback Rate
  • 2x
  • 1.5x
  • 1.2x
  • 1x
  • 0.8x
  • 0.7x
1x
Subtitles
  • subtitles off
Captions
  • captions off
Chapters
  • Chapters
HD
Desculpe-nos pelo transtorno, mas este video não pode ser carregado, tente novamente.

Transcrição

Mas ainda há um erro de compilação no método adiciona. Agora, como o TypeScript sabe que o valor retornado por um HTMLInputElement é sempre uma string, a passagem dos valores para o constructor de Negociacao não estão mais compatíveis.

// erro de compilação no método !
        adiciona(event: Event) {

            event.preventDefault();
            const negociacao = new Negociacao(
                this._inputData.value,
                this._inputQuantidade.value,
                this._inputValor.value);

            console.log(negociacao);
        }
[ts] Argument of type 'string' is not assignable to parameter of type 'Date'..

Precisamos converter as string para o respectivo tipo esperado pelo constructor() de Negociacao. No final, nossa classe NegociacaoController estará assim:

    class NegociacaoController {

        private _inputData: HTMLInputElement;
        private _inputQuantidade: HTMLInputElement;
        private _inputValor: HTMLInputElement;

        constructor() {

            this._inputData = <HTMLInputElement>document.querySelector('#data');
            this._inputQuantidade = <HTMLInputElement>document.querySelector('#quantidade');
            this._inputValor = <HTMLInputElement>document.querySelector('#valor');
        }

        adiciona(event: Event) {

            event.preventDefault();

            const negociacao = new Negociacao(
                new Date(this._inputData.value.replace(/-/g, ',')),
                parseInt(this._inputQuantidade.value),
                parseFloat(this._inputValor.value));

            console.log(negociacao);
        }
    }
Tirar dúvida Próxima Atividade
ícone TypeScript parte 1: Evoluindo seu Javascript

TypeScript parte 1: Evoluindo seu Javascript

100%
Aula02 de 05

Benefícios da tipagem estática

Atividades 9 de 13

  • 01 Capturando os dados do formulário 10min
  • 02 O tipo implícito any 06min
  • 03 Sobre o tipo any
  • 04 Tipando explicitamente 04min
  • 05 Para saber mais: string v String e number vs Number
  • 06 Um problema não esperado 04min
  • 07 Casting explícito 08min
  • 08 Sobre casting explícito
  • 09 Adequando valores aos tipos 04min
  • 10 Para saber mais: input type Date no Microsoft Edge e no Firefox
  • 11 Sobre o código
  • 12 Revisão 05min
  • 13 Consolidando seu conhecimento

Aulas

Outros Links

Fórum Trocar Curso
Gravatar de Marcos Katsumi Kay

Marcos Katsumi Kay 34.0k xp

Logo da Alura